package cn.bdqn.pn.service.base;

import cn.bdqn.pn.pojo.base.City;
import org.springframework.data.domain.Page;

import java.sql.SQLException;
import java.util.List;


public interface CityService {
    /**
     * 添加城市
     * @param city
     * @return
     */
    City addCity(City city) throws Exception;

    /**
     * 传0查询所有省，其他表示查询(fatherId=值)的城市
     * @return 集合
     */
    List<City> listCity(City city) throws Exception;

    /**
     * 传0查询所有省，其他表示查询(fatherId=值)的城市
     * @param pageNo 当前页数（非下标）
     * @param pageSize 页大小（默认为10）
     * @return 分页数据
     */
    Page<City> listCity(City city, Integer pageNo, Integer pageSize) throws Exception;


    /**
     * 检查重复
     * @param city 城市对象（主需城市名称）
     * @return 城市
     */
    City checkRepeat(City city) throws Exception;

    /**
     * 根据id获取对象
     * @param city 城市对象（主需城市id）
     * @return 城市
     */
    City findCity(City city) throws Exception;

    /**
     * 修改城市
      * @param city
     * @return
     * @throws Exception
     */
    boolean updateCity(City city) throws Exception;
    /**
     * 删除
     * @param cityId
     * @throws Exception
     */
    void delCity(Integer cityId) throws Exception;

    /**
     * 查询城市总数
     * @return
     */
    Long cityCount() throws Exception;


    /**
     * 查询全部的城市
     * @return
     * @throws SQLException
     */
    List<City> getAllListCityInfo() throws SQLException;


    /**
     * 根据id查城市
     */
    City getCityByid(Integer id);
    /**
     * 根据城市Id查询城市信息
     * @param cityId
     * @return
     */
    City findCityBycityId(Integer cityId) throws Exception;
}
